package com.mju.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mju.pojo.Vip;

public interface IVipService  {
    /**
     * 添加新的会员信息
     * @param vip VIP数据对象
     * @param day 增加的会员天数
     */
    Boolean addNewVip(Vip vip,Integer day);

    /**
     * 根据用户id查询VIP信息
     * @param uid 用户的id
     * @return  返回VIP信息
     */
    Vip getByUid(Integer uid);

    /**
     * 根据用户id逻辑删除，即修改status状态
     * @param uid
     */
    Boolean deleteVIP(Integer uid);

    /**
     * 修改VIP状态
     * @param uid
     */
    Boolean updateVIPStatus(Integer uid,Boolean status);

    /**
     * 根据uid查询有效的VIP信息，为空则说明当前uid的VIP过期
     * @param uid
     * @return
     */
    Vip queryVipByUid(Integer uid);

    /**
     * vip是否过期,true有效，false过期
     * @param uid
     * @return
     */
    Boolean doesTheVipExpire(Integer uid);


    /**
     * VIP续费
     * @param uid  用户id
     * @param day 增加的天数
     */
    Boolean vipRenewal(Integer uid, Integer day);

    /**
     * 无条件查询所有VIP信息
     * @return
     */
    IPage<Vip> queryAllVipInfo(Integer currentPage, Integer pageSize);

    /**
     * 条件查询所有VIP信息
     * @param currentPage
     * @param pageSize
     * @param vip
     * @return
     */
    IPage<Vip> conQueryAllVipInfo(Integer currentPage, Integer pageSize,Vip vip);
}
